ObjectCursor

Introduction

The ObjectCursor by Udo Egner-Walter is a script collection for the screenreader JAWS by Freedom Scientific. The collection contains scripts to provide the screenreader JAWS with an additional type of cursor. In some ways, the ObjecctCursor is similar to the TouchCursor already built into JAWS for navigating between the controls of an application, but adds new features.

This is no official script collection from Freedom Scientific the developers of JAWS. All scripts included have been extensively tested. However, some scripts may not work properly. Therefore, you use this script collection at your own risk, and the author assumes no liability for the scripts in this collection, nor any liability for damages resulting from the use of the scripts or misapplication of the script collection.

For more information on how to use this script collection, please refer to the Copyright section.

Udo Egner-Walter, December 2020

Table of contents

System requirements

The following requirements are necessary to use this script collection:

This script collection by Udo Egner-Walter is licensed under the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

This is a human-readable summary of (and not a substitute for) the license.

Disclaimer.

You are free to:

The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:

Notices:

You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.

No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.

Source

Acknowledgement

I would like to personally thank the following testers (alphabetically):

Thanks for your feedback and suggestions.

Furthermore I want to thank all the testers I forgot to mention or who didn’t want to be mentioned here. Also many thanks to you for testing.

I would also like to thank René Ludwig who made it possible that the script collection can be downloaded from the German JAWS site.

And finally, I would like to thank the team at DeepL for providing the free translation service on the web at DeepL, which was a great help with the translation into English.

Thanks a lot to all of you!

History

2020–12

First publication. Included features:

Installation Guide

Preliminary remark

This script collection includes the following files:

The installation includes the following steps, which are explained in more detail below:

a) Copy to the user script directory
b) Use myExtensions script file
c) Add keys for the scripts
d) Compiling the source code

a) Copy to user script directory

The first step is to copy the above files into the user script directory.

Proceed as follows:

Note: If you cannot access your user script directory as described above, you can proceed alternatively:

You are now in your user script directory, into which you can copy the above files.

**Attention! ** Only overwrite files in the target directory if you want to replace an older script version with a newer script version. Make a backup of the files before.

b) Use myExtensions script file

The MyExtensions.jss file is a user script file provided by the JAWS developers for your own scripts. If a file named MyExtensions.jss already exists in your user script directory, open it with the Windows editor and add the following entry at the end

use "ewObjectCursor.jsb"

If the file MyExtensions.jss does not exist yet, please name the file:

ewObjectCursor (myExtensions).jss

to the file:

MyExtensions.jss

c) Add keys for the scripts

To make the script keys available, they must be integrated into your own keyboard mapping files.

If there is no file named Default.jkm in your user script file, name the file:

ewObjectCursor.jkm 

to the file:

default.jkm 

Then continue with the next step d) Compiling the source code.

If a file Default.jkm already exists in your user script directory, please open the file ewObjectCursor.jkm in a text editor. You can rename the extension JKM to TXT for easier editing.

  1. mark the lines up to the first empty line (the following line after the empty line is [Common Keys]
  2. cut the just marked lines with Ctrl+X* into the clipboard
  3. after you have cut selected lines to the clipboard, open the Default.jkm file in a text editor as well. You can also rename the extension JKM to TXT for easier editing. However, you must be careful to rename it back to JKM later, otherwise JAWS will not find your custom keys.
  4. create a blank line at the beginning of Default.jkm by a carriage return and paste the contents of the entries cut to the clipboard.
  5. copy the entries of the first file ewObjectCursor.jkm below the section [Common Keys] to the clipboard.
  6. switch to the file Default.jkm again
  7. search here for the section [Common Keys]
  8. go to the end of this line and insert a blank line with the return key
  9. paste the text copied to the clipboard into the created blank line
  10. save the file and remember to rename the extension TXT back to JKM*

d) Compiling the source code

In order for JAWS to use the scripts, the code must first be compiled, that is, translated into a format used for JAWS. Because this translation varies from one version of JAWS to another, you must do this manually for each version of JAWS. The steps are as follows:

Detailed description of the scripts

Keys to start and stop:

key description
Alt+SHIFT+Plus (in numeric keypad) Activates the ObjectCursor
Escape Exits the ObjectCursor

Move in ObjectCursor with and without changing the system focus

The JAWS TouchCursor does not automatically change the system focus when used to allow the user to explore the screen and return to the original system focus location when the TouchCursor is exited. Since in some cases it makes sense to explore the screen without changing the system focus, and in other cases it would make sense to move the system focus along with the ObjectCursor, the ObjectCursor provides both possibilities.

Move in ObjectCursor without changing the system focus

key description
Right Arrow Moves the ObjectCursor one control further without changing the system focus
Left Arrow Moves the ObjectCursor one control back without changing the system focus
Home Moves the ObjectCursor to the first object of the application without changing the system focus
End Moves the ObjectCursor to the last object of the application without changing the system focus

Moving in ObjectCursor with changing the system focus

key description
Tab Moves the ObjectCursor together with the system focus to the next control. If the system focus cannot be moved to the new object, the system focus remains with the previously used object.
Shift+Tab Moves the ObjectCursor together with the system focus back to the previous control. If the system focus cannot be moved to the new object, the system focus remains with the previously used object.
Ctrl+Home Moves the ObjectCursor to the first object of the application. If the first object can be focused, the system focus is set there.
Ctrl+End Moves the ObjectCursor to the last object of the application. If the last object can be focused, the system focus is set there.

An application consists of various controls like buttons, input fields, menus and so on. These control element types can be reached quickly in the ObjectCursor. The following keys are available:

key description
Up Arrow Jumps to the previous control, which is currently set by pressing Page Up or Page Down.
Down Arrow Skips to the next control, which is currently set by pressing Page Up/Page Down.
Page Up Changes the control type up so that you can jump to it with arrow up or arrow down. Only control types that are actually present in the application are displayed for selection.
Page Down Changes the control type down so that you can jump to it with arrow. up or arrow down Only control types that are actually present in the application are displayed for selection.
Ctrl+Right Arrow Jumps to the next control of the same type. For example, if you are currently standing on a button, the command causes the next button to be searched for.
Ctrl+Left Arrow Jumps to the previous control of the same type. For example, if you are currently standing on a button, the command will search for the previous button.
Ctrl+Shift+Right Arrow Jumps to the next control of a different type. For example, if you are on the first tab and want to jump to the first control after all subsequent tabs, press this key combination.
Ctrl+Shift+Left Arrow Jumps to the previous control of a different type. For example, if you are on the last tab and want to jump to the first control before the tabs, press this key combination.

Execute and focus objects

key description
Spacebar or Insert+Plus (in the numeric keypad) If the object currently selected in the ObjectCursor can get the system focus, pressing this key causes the system focus to be set at this position. The ObjectCursor is not terminated.
Enter The current object is executed. If this is not possible, a mouse click on the current object is performed. The ObjectCursor is then terminated.
Shift+Enter The current object is executed. If this is not possible, a mouse click on the current object is performed. In contrast to the previously mentioned key combination (Enter), the ObjectCursor is not terminated. Instead, the objects of the application are loaded again. This makes it possible, that you can activate a tab in the ribbon bar and have the new controls of these tabs available in the ObjectCursor without having to leave and restart it.
Alt+Enter A mouse click on the current object is performed and the ObjectCursor is closed afterwards.
Ctrl+Enter This command simulates the so-called MouseOver effect. Here the mouse is dragged to the currently selected object and moved briefly. This has the effect of activating mouse-over menus in the Internet, for example. The ObjectCursor is not closed and the objects of the application are loaded again.
Ctrl+Shift+Enter If you use the previously mentioned key combination to open a menu, it is necessary that the mouse is no longer placed on the current object. For this reason, this key combination resets the mouse position and moves the mouse to the upper left corner of the screen.

Settings and refining the search results

Since different applications can produce different needs, the following list shows you how to customize search results and save settings for specific applications:

key description
Ctrl+A Saves the current ObjectCursor settings for the application in the foreground. These settings are loaded automatically the next time the ObjectCursor is started for this application.
Ctrl+Backspace If you have saved the settings for the current application with the previously mentioned key combination, this key combination deletes the associated settings file.
F1 Changes the filter for the listed objects of the ObjectCursor. If you press the key once, JAWS speaks of currently selected filter. If you press the key twice in quick succession, the next filter setting becomes active. Filters for objects are:
  1. no filter: With this setting, all objects in the application window or the objects in a dialog are listed. Keep in mind that not all objects are always available for a system focus and you cannot execute all objects. The filter is advantageous if you want to get an overview of the application. However, if you want to use the application efficiently and not all controls are displayed, use one of the following filters.
  2. hide inactive elements: Hides all elements of the application or dialog that are inactive. Inactive elements are usually grayed out on the screen and cannot be reached with the Tab key.
  3. hide inactive and nameless elements: In addition to all inactive elements, this filter also hides those elements that have no name.
  4. show only elements that can be focused by keyboard: This filter only shows elements that can be reached with the Tab key and thus corresponds to the operation with the PC Cursor.
key Description
F2 This setting determines whether the ObjectCursor should stop at the end or the beginning of the list. If the setting is not activated, navigation will stop at the end or the beginning of the list and a beep will sound. If this setting is activated, the ObjectCursor at the end will start at the beginning of the list when navigating further with the right arrow, or at the beginning of the list when navigating further with the left arrow.
F3 Setting for search with quick keys. While the ObjectCursor is active, you can quickly move through the list of all objects by tapping an alphanumeric key. You have the following two options:
  1. search by name: Corresponds to the search in normal lists with a single key press. For example, if you have a Calculate button in your application, press c repeatedly until the Calculate button is activated. The search starts at the current position. If no matches are found for the following objects, the search automatically starts at the first object of the application/dialog and ends - if nothing is found - at the current position.
  2. search by control type: Corresponds to the short key search in the TouchCursor. The following letters are available:
    A - Next radio button
    B - Next switch
    C - Next drop-down list
    D - Next document
    E - Next input field
    F - Next form field
    G - Next graphic
    H - Next heading
    I - Next list item
    K - Next link
    L - Next list
    M - Next menu
    O - Next toolbar
    P - Next area
    Q - Next tab
    R - Next region
    S - Next occurrence of static text
    T - Next table
    U - Next group
    V - Next tree view
    X - Next control panel
    Z - Next status bar

Temporary monitoring spot and spots

key Description
Alt+F7 Set the temporary monitoring spot. The ObjectCursor will not be closed. A monitoring spot could be for example a time display in a media player that changes constantly.
Alt+SHIFT+F7 Press these keys outside the ObjectCursor if you have defined a temporary monitoring spot with the previously mentioned key combination. When you press the key, the name of the object is spoken by JAWS (for example, a changing display). The temporary spot remains active until you close JAWS or the program you are using.
Alt+spacebar Marks the current object in the ObjectCursor as a spot and adds it to the list of spots
Alt+Shift+Ctrl+Plus (in the numeric keypad) or Ctrl+Shift+Plus (in the numeric keypad) This key is only available outside the ObjectCursor and opens a dialog with the objects previously marked as Spot. In the dialog itself, you have the following options:

When you have decided on a selection, press Enter to confirm or Escape to cancel the process. After confirming the selection with the Enter key, a “non-executable” pseudo shortcut is created. Then the Keyboard Manager opens and JAWS speaks the name of the newly created script. Locate the named script in the keyboard manager and change the “pseudo” shortcut by opening the context menu and assigning a new shortcut.

Read keys:

key description
Insert+Arrow up Speaks the object currently selected in the ObjectCursor.
Insert+Down Arrow Speaks all objects of the current window in sequence
Ctrl+Down Arrow Speaks all text controls of the current window like static text, document window, input fields, etc.
Alt+N Speaks the name of the currently selected object
Alt+F Speaks the description of the currently selected object
Alt+H Speaks the help text of the currently selected object

Other key combinations

The key combinations listed below are difficult to divide into categories and are therefore listed here:

key description
Ctrl+N Copies the names of all controls of the current control type to the clipboard. If you are on a list entry, all list entries are copied to the clipboard, so to speak.
Ctrl+S Copies all shortcuts and hotkeys of the current window to the clipboard. Note that for shortcuts of the ribbon, you will have to repeat the process for each tab, because the controls of a tab are not displayed on the screen until it is activated.
Shift+F1 Set a temporary bookmark in the ObjectCursor. For example, if you want to explore the controls further, but want to return to the current position later, you can use this key combination to set a temporary bookmark. If you want to use Drag & Drop to move an object, press this key combination as well, so that the object is marked for a later Drag & Drop operation.
Shift+F2 Activates a previously created temporary bookmark.
Ctrl+Shift+F2 If you previously marked an object as a temporary bookmark, it is now dragged and dropped onto the current object.

Contact

If you discover mistakes, have questions, want to make suggestions and ideas for improvement or want to express criticism, you are welcome to do so in German or English to the following e-mail address:

udo.egner-walter@web.de

Please keep in mind, however, that this script collection was created by me as a private person and that I may only be able to reply to your e-mails to a limited extent.